package com.tanhua.dubbo.api.mongo;

import com.tanhua.domain.dto.OptionsDto;
import com.tanhua.domain.dto.QuestionDto;
import com.tanhua.domain.mongo.*;
import com.tanhua.domain.vo.LHQuestionnaireVo;
import org.bson.types.ObjectId;

import java.util.List;

//此类用于对灵魂测试的各种操作
public interface SoulServiceApi {
    LHOptions findOptionByOptionId(String optionId);

    String addResult(LHResult lhResult);

    LHQuestion findQuestionnaireByQuestionId(String questionId);

    /**此方法用于根据问题的id查询问卷的id
     * @param id 问题的id
     * @return 问卷的id
     */
    ObjectId findQuestionnaireId(ObjectId id);
    /** 此方法用于查询报告的id
     * @return
     */
   boolean findReportId(Long userId);
    //此方法用于查询用户灵魂测试的锁
    boolean findLock(Long userId);
    /**此方法用于添加试题的锁
     * @param userId 用户的id
     */
   void addLock(Long userId);
    /**查询选项的数据
     * @param id 选项的id
     * @return 选项的数据
     */
    LHOptions findOneOption(String id);
    /**此方法用于查询问卷是否锁住
     * @param userId 用户的id
     * @param level 问卷的级别
     * @return
     */
    LHlock findIsLock(Long userId, Integer level);
    /** 此方法用于查询所有问卷
     * @return 问卷的列表
     */
    List<LHQuestionnaire> findTest();

    /**此方法用于查询所有的问题
     * @param id 问卷的id
     * @return 属于该问卷的问题的列表
     */
    List<LHQuestion> findQuestion(String id);

    /**此方法用于查询所有的问题答案
     * @param id 问题的答案
     * @return 答案的id
     */
    List<LHOptions> findOption(String id);
}
